package com.team2.hospital.controller;

import com.team2.hospital.entity.Arrange;
import com.team2.hospital.service.ArrangeService;
import com.team2.hospital.utils.ResponseData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/arrange")
public class ArrangeController {
    @Autowired
    private ArrangeService arrangeService;

    /**
     * 根据日期查询排班信息
     *
     * @param arTime   排班日期
     * @param dSection 科室
     * @return 返回查询的排班信息
     */
    @RequestMapping("findByTime")
    public ResponseData findByTime(@RequestParam(value = "arTime") String arTime,
                                   @RequestParam(value = "dSection") String dSection) {
        System.out.println("[findByTime] 请求开始，时间：" + System.currentTimeMillis() + "，arTime：" + arTime + "，dSection：" + dSection);
        // 调用 arrangeService 中的 findByTime 方法根据日期和科室查询排班信息
        return ResponseData.success("根据日期查询排班信息成功", this.arrangeService.findByTime(arTime, dSection));
    }

    /**
     * 增加排班信息
     *
     * @param arrange 排班信息
     * @return 返回操作结果
     */
    @RequestMapping("addArrange")
    public ResponseData addArrange(Arrange arrange) {
        System.out.println("[addArrange] 请求开始，时间：" + System.currentTimeMillis() + "，arrange：" + arrange);
        // 调用 arrangeService 中的 addArrange 方法增加排班信息
        if (this.arrangeService.addArrange(arrange))
            return ResponseData.success("增加排班信息成功");  // 返回排班成功的响应
        return ResponseData.fail("该医生该日已排班");  // 返回排班失败的响应，说明该医生该日已排班
    }

    /**
     * 删除排班信息
     *
     * @param arId 排班ID
     * @return 返回操作结果
     */
    @RequestMapping("deleteArrange")
    public ResponseData deleteArrange(String arId) {
        System.out.println("[deleteArrange] 请求开始，时间：" + System.currentTimeMillis() + "，arId：" + arId);
        // 调用 arrangeService 中的 deleteArrange 方法删除排班信息
        if (this.arrangeService.deleteArrange(arId))
            return ResponseData.success("删除排班信息成功");  // 返回删除成功的响应
        return ResponseData.fail("排班信息不存在");  // 返回删除失败的响应，说明排班信息不存在
    }


}
